<?php
require_once(getcwd()."/Modelo/bd/bd.php");
require_once(getcwd()."/Controlador/utils.php");
class JugadorControlador {
    static function informaJugador($mail,$juego_nombre){
        error_log("informajugador");
        require_once("Modelo/Usuario.php");
        $pwd=generatePassword();
        
        $texto="<html><body>
Gracias por preinscribirte al $juego_nombre. Para terminar de registrarte deberás realizar el pago de los 15 soles, tienes las siguientes opciones:
<br>
<br>
1) Por banco:<br>
Realizar un depósito de S./ 15 a UNA de las siguientes cuentas bancarias:<br>
-BBVA: 0011-0123-0200422553 (Fabricio Holgado Chacón)<br>
-BCP: 191-22935883-0-56 (José Carlos Capuñay Vásquez)<br>
<br>
A continuación, envíanos un correo (inv@pucp.edu.pe) con la siguiente información:<br>
-Nombre y apellido<br>
-Número operación (número que aparece en el voucher)<br>
-Fecha en que se realizó el depósito<br>
<br>
2) De manera presencial:<br>
Encuéntranos en la cafetería de arte de la PUCP de 11:00 a 14:00 el sábado 12 de mayo o el sábado 19 de mayo.<br>
<br>
Ante cualquier duda, comunícate con nosotros a inv@pucp.edu.pe o a través de nuestro facebook en  <a href='http://facebook.com/inversionesPUCP'>inversionesPUCP</a>.<br>
<br>
            Atte. <br>
            Inversiones PUCP<br>
            <img src='http://inv.com.pe/logo%20inversiones2.gif' width='100'>
            </body></html>";
        enviaCorreoAutenticado($texto,array('mail'=>$mail,'nombre'=>''),"[INV] Usuario Creado");

    }
    static function vincularJugadorJuego($idjuego, $idjugador) {
        require_once("Modelo/Juego.php");
        $juego=Juego::verJuego($idjuego);
        $sql="insert into jugador_x_juego (idjuego, idjugador, monto_disponible, rentabilidad, estado) values ";
        $sql.="(".$idjuego.",".$idjugador.",".$juego['monto_inicial'].",0,'pendiente')";
        BD::ejecutarQuerySimple($sql);
    }
    static function grabarJugador() {
        require_once("Modelo/Jugador.php");
        $id=isset($_REQUEST['idjugador'])?$_REQUEST['idjugador']:"";
        $idusuario=isset($_REQUEST['idusuario'])?$_REQUEST['idusuario']:"";
        require_once("Modelo/Usuario.php");
        if (testUnique()) {
            killVars();
            $usuario=Usuario::grabarUsuario($idusuario,$_REQUEST['nombre']." ".$_REQUEST['ap_paterno']." ".$_REQUEST['ap_materno'],
                    $_REQUEST['mail'],$_REQUEST['mail'],$_REQUEST['pwd'],
                    'activo','jugador');
            $jugador=Jugador::grabarJugador($_REQUEST['nombre'],$_REQUEST['ap_paterno'],$_REQUEST['ap_materno'],
                    $_REQUEST['tipo_documento'],$_REQUEST['num_documento'],$_REQUEST['mail'],
                    $_REQUEST['celular'],$_REQUEST['celular2'],$_REQUEST['telefono'],
                    $_REQUEST['especialidad'],$_REQUEST['universidad'],$_REQUEST['estado'],$usuario['idusuario'],
                    $_REQUEST['idjugador']);
            if (!isset($_REQUEST['formulario']))
                require_once("Vista/Jugador/Detalle.php");
            else {
                JugadorControlador::vincularJugadorJuego($_REQUEST['idjuego'], $jugador['idjugador']);
                $juego=Juego::verJuego($_REQUEST['idjuego']);
                self::informaJugador($jugador['mail'],$juego['nombre']);
                header("location:index.php?registro=1");
            }
        }
        else {
            killVars();
            if (isset($_REQUEST['formulario']) and $_REQUEST['formulario'])
                require_once("Vista/formulario.php");
            else JugadorControlador::verJugadorForm();
        }

    }
    static function verJugadorForm() {
        if(isset($_REQUEST['idjugador'])) {
            require_once("Modelo/Jugador.php");
            $jugador=Jugador::verJugador($_REQUEST['idjugador']);
        }
        $admin=0;
        require_once("Vista/Jugador/Formulario.php");
    }

    static function getJugadorById($id) {
        $resultado=Controlador::getObjetoById($id, "jugador");
        $jugador= new Jugador();
        if (is_array($resultado)) {
            $jugador->idjugador=$resultado['idjugador'];
            $jugador->nombre=$resultado['nombre'];
            $jugador->ap_materno=$resultado['ap_materno'];
            $jugador->ap_paterno=$resultado['ap_paterno'];
            $jugador->telefono=$resultado['telefono'];
            $jugador->especialidad=$resultado['especialidad'];
            $jugador->universidad=$resultado['universidad'];
            $jugador->celular=$resultado['celular'];
            $jugador->celular2=$resultado['celular2'];
            $jugador->mail=$resultado['mail'];
            $jugador->num_documento=$resultado['num_documento'];
        }
        return $jugador;
    }
    static function verDetalle() {
        $jugador=JugadorControlador::getJugadorById($_REQUEST['id_jugador']);
        require_once("../Vista/Jugador/Detalle.php");
    }
    static function obtenerIdUltimoJuego($idjugador) {
        $query="select j.idjuego, jj.idjugador_x_juego, jj.idjugador, j.fecha_inicio, date_format(j.fecha_inicio,'%d/%m/%Y') fecha_inicio_formato, j.fecha_fin, date_format(j.fecha_fin,'%d/%m/%Y') fecha_fin_formato
            from juego j left join jugador_x_juego jj on j.idjuego=jj.idjuego and jj.estado='inscrito'
        where j.estado='activo' and jj.idjugador=$idjugador order by j.fecha_inicio desc limit 1";

        return BD::ejecutarQuerySelectUnitario($query);
    }
    static function obtenerIdUltimoJuegoJugador($idjugador) {
        $query="select j.idjuego, j.nombre, date_format(j.fecha_inicio,'%d/%m/%Y') as fecha_inicio, date_format(j.fecha_fin,'%d/%m/%Y') as fecha_fin,
            j.texto_web
        from juego j right join jugador_x_juego jj on j.idjuego=jj.idjuego and jj.idjugador=$idjugador
        where j.estado='activo' order by j.fecha_inicio desc limit 1";

        return BD::ejecutarQuerySelectUnitario($query);

    }
    static function verRanking($usuario,$juego) {

        if(isset($juego['idjuego'])) {
            require_once("Modelo/Juego.php");
            require_once("include/utils/ps_pagination.php");
            $query_jugadores=Juego::obtenerRankingActual($juego['idjuego']);
            $pager = new PS_Pagination($query_jugadores, 100, 5,'accion='.$_REQUEST['accion']);
            $jugadores = $pager->paginate();
        }
        require_once("Vista/Juego/Ranking.php");
    }
    static function verRankingJuegosAnteriores($usuario,$juego) {
        if(isset($_REQUEST['idjuego']))
            $juego['idjuego']=$_REQUEST['idjuego'];

        if(isset($juego['idjuego'])) {
            require_once("Modelo/Juego.php");
            $juegos_opciones=Juego::opcionesJuegosxJugadorAnterior($usuario['id']);
            $jugadores=Juego::obtenerRankingAntiguo($juego['idjuego']);
        }
        if ($juegos_opciones)
            require_once("Vista/Juego/RankingAntiguo.php");
        else JugadorControlador::verRanking($usuario,$juego);
    }
    static function verOperaciones($usuario,$juego) {
        require_once("Modelo/Jugador.php");
        require_once("Modelo/Juego.php");
        $juegos_opciones=Juego::opcionesJuegosxJugador($juego['idjugador']);
         require_once("include/utils/ps_pagination.php");
    $query_operaciones=Jugador::verOperaciones($juego['idjugador_x_juego']);
    $pager = new PS_Pagination($query_operaciones, 10, 5,'accion='.$_REQUEST['accion']);
    
    $operaciones = $pager->paginate();
        
        require_once("Vista/Jugador/Operaciones.php");
    }
    static function verInscripcionJuego($usuario,$juego){
        require_once("Modelo/Jugador.php");
        require_once("UsuarioControlador.php");
        $juego=UsuarioControlador::obtenerIdUltimoJuego();
        
        $jugador=Jugador::obtenerJugador($usuario['id'],$juego['idjuego']);
        
        if ($jugador['estado']=="")
            {        
                require_once("Vista/Jugador/inscripcionJuego.php");
            }
        else if($jugador['estado']!="inscrito"){
            require_once("Vista/Jugador/pendienteAprobacion.php");
        }
        
    }
    static function jugada($usuario,$juego) {
        require_once("Modelo/Jugador.php");
        require_once("Modelo/Juego.php");
        $juegos_opciones=Juego::opcionesJuegosxJugador($juego['idjugador']);
        
        $acciones=Jugador::verCartera($juego['idjugador_x_juego']);

        require_once("Vista/Jugador/Jugada.php");

    }
    static function verCotizaciones($usuario,$juego) {

        if(isset($juego['idjuego'])) {
            require_once("Modelo/Juego.php");
            $cotizaciones=Juego::verCotizaciones($juego['idjuego']);
            $dias=Juego::verDias($juego['idjuego']);
           
        }

        require_once("Vista/Jugador/Cotizaciones.php");
    }
    static function miPerfil($usuario,$juego) {
        require_once("Modelo/Jugador.php");
        $jugador=Jugador::verJugador($usuario['id']);
        require_once("Vista/Jugador/Detalle.php");
    }
    static function mostrar_Menu($usuario) {
        
        $juego=JugadorControlador::obtenerIdUltimoJuego($usuario['id']);
        if ($juego)
            require_once("Vista/menu_jugador.php");
        else
            require_once("Vista/menu_jugador_noInscrito.php");
        return $juego;
    }
    static function GrabarJugada($usuario,$juego) {

        if (testUnique()) {
            killVars();
            require_once("Modelo/Jugador.php");
            Jugador::grabarJugada($usuario,$juego);
            JugadorControlador::jugada($usuario, $juego);
        }
        else {
            killVars();
            JugadorControlador::jugada($usuario, $juego);
        }

    }
    static function inscribirJugador($usuario,$juego){
        require_once("Modelo/Jugador.php");
        require_once("UsuarioControlador.php");
        

        if ($jugador['estado']=="")
            {
                require_once("Modelo/Juego.php");
                $juego=Juego::InscribirJugador($_REQUEST['idjugador'],$_REQUEST['idjuego']);
            }
        require_once("Vista/Jugador/pendienteAprobacion.php");
        
    }
    static function chat($usuario,$juego){
        require_once("Vista/chat.php");
    }

    static function logout() {
        logout();
    }
    static function ejecutaAccion($accion,$usuario) {
        $juego=JugadorControlador::mostrar_Menu($usuario);
        JugadorControlador::$accion($usuario,$juego);

    }
}
?>
